The present invention relates to a method for synchronizing multiple copies of one or more databases in a network environment including electronic devices.
As the components required to build a computer system have reduced in size, new categories of computer systems have emerged. One of the more recent categories of computer systems is the portable or xe2x80x9cpalmtopxe2x80x9d computer system, or personal digital assistant (PDA). A palmtop computer system is a computer that is small enough to be held in the hand of a user and is thus xe2x80x9cpalm-sized.xe2x80x9d As a result, palmtops are readily carried about in a briefcase or purse, and some palmtops are compact enough to fit into a person""s pocket. By virtue of their size, palmtop computer systems are also lightweight and so are exceptionally portable and convenient.
Further development of PDAs has enabled their use for portable, and even wireless, access to computer networks. The portability and convenience, and, most importantly, the ready ability to synchronize a palmtop device with other computers and data sources, makes such devices ideal for use in networks that serve the workplace as well as the home.
Synchronization is a process that provides the ability to coordinate the databases maintained on a PDA with copies, or versions, of the same and similar databases maintained on a desktop or other computer, or other electronic device, such as a cell phone. Not only is the access to data generally more readily available on a desktop, but desktops or other networked devices have ready access to printers and communication with other devices in the network and the internet on a continuing basis.
Typically, in a network having a portable electronic device, a 2-way synchronization is accomplished with the portable electronic device in a cradle that communicates with the desktop. Synchronization is initiated at the PDA and the user can generally select whether the PDA""s database is to be written over (one-way), or the desktop""s database is to be written over (one-way the other way), or all modifications on each are to be incorporated in the other (two-way). Typically, the latter synchronization, two-way, is the most useful.
Historically, however, as the number of databases grows, the number of required synchronizations grows exponentially. Each additional copy of each database needs to be synchronized with all the other copies, resulting in a growth of time required on the order of 2n, where n is the number of database copies to be synchronized. This number is repeated for each database maintained.
In a complex network, with a dynamic set of databases, the time devoted to necessary synchronizations grows and could begin to drag down system performance with even a modest number of databases and copies. More importantly, if synchronization takes too long, users will begin to initiate synchronization less frequently than necessary, or worse, avoid it entirely.
What is required, therefore, is a mechanism for rapidly and reliably synchronizing multiple copies of one or more databases in a network environment. The need further exists to allow the expansion of the number of copies of a database that are synchronized without unnecessary limit and without an exponential increase in the amount of time required to accomplish the synchronization process.
The present invention relates to a method for the rapid and reliable synchronization of multiple copies of one or more databases in a network environment. In one embodiment, the method allows the synchronization of an increasing number of copies of multiple databases without an attendant exponential increase in the amount of time required to accomplish the synchronization.
The present invention relates to a method for synchronizing databases in a network environment. Specifically, the present invention pertains to a method of using a set of hierarchical rules to enable an efficient and speedy synchronization between multiple copies of a database. The present invention enables an xe2x80x9cn-wayxe2x80x9d synchronization of databases where xe2x80x9cnxe2x80x9d, the number of databases synchronized, is essentially any number more than two. The present invention provides rule-based, n-way, synchronization by identifying a focus copy of the database, comparing the data records of the focus copy against the same records in other copies of the database to identify those records that are deleted or modified with respect to the focus copy. A record that is deleted in one database copy but remains unmodified in any other copy is deleted in all database copies. If a record has been both deleted in one copy and modified in another, the invention transmits the modified record across all databases copies and a deleted record is treated like a modified record. The database is cycled through so that all database copies are eventually processed like the focus. On subsequent cycles, records that have already been processed by a focus database are skipped. By performing this process, the method enabled by the present invention allows the speedy maintenance of multiple, synchronized, databases without the inadvertent loss of any data record.
An embodiment of the present invention operates in a system having multiple copies of a database, and includes a method of synchronizing the multiple copies of the database comprising the steps of: a) identifying a focus copy of the multiple copies of the database; b) comparing records of the focus copy against records having a same identification tag but contained in other copies of the database to identify deleted and modified records with respect to the focus copy; c) removing from all the copies of the database a record indicated by step b) as being deleted by any copy of the database, provided the record was not also modified by any other copy of the database; d) with respect to any modified record indicated by step b), writing the modified record to all the copies of the database that do not already contain the modified record; and e) selecting a new focus copy of the copies of the database and repeating steps b)-e) until all the copies of the database have been processed as a focus copy.
Embodiments include the above and those wherein step b) only processes previously unprocessed records of the focus copy. Embodiments further include the above and those wherein step b) also identifies new records of the focus copy and wherein further step d) applies to the new records. Embodiments also include the above and those wherein step d) applies to a record that has been modified in one copy but deleted in another copy of the database.
Embodiments include the above and those wherein step d) applies to a record that has been modified in one copy but deleted in two other copies of the database. Embodiments include the above and those wherein, with respect to a record that has been modified in more than one copy, step d) writes the modifications of the record to all copies of the database that do not already contain the modifications.